home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / art&graf.ix / art-6206 / big_e_d / nacelles.inc < prev    next >
Text File  |  1998-03-03  |  26KB  |  1,175 lines

  1. //
  2. // NACELLES.INC (BIG_E.POV)
  3. //
  4. // Written by Ville Saari
  5. //
  6. // Created: 22-Sep-92
  7. // Updated: 22-Jan-93
  8. //
  9. // PoV-Ray object description for the warp drive nacelles of the starship
  10. // U.S.S. Enterprise NCC-1701-A
  11. //
  12. // shapes.inc and bigetext.inc must be included before this file
  13. //
  14. // This file creates following declarations to be externally used:
  15. //
  16. //     Left warp nacelle:
  17. //         composite { Left_warp_nacelle }
  18. //
  19. //     Right warp nacelle:
  20. //         composite { Right_warp_nacelle }
  21. //
  22. //     Pylon connecting the left nacelle to secondary hull:
  23. //         composite { Left_nacelle_pylon }
  24. //
  25. //     Pylon connecting the right nacelle to secondary hull:
  26. //         composite { Right_nacelle_pylon }
  27. //
  28.  
  29. //
  30. // Parts of the warp drive nacelles
  31. //
  32.  
  33. declare Nacelle_bottom_shape = union
  34.    {
  35.    quadric { Cylinder_Z scale <0.6 0.6 1> translate <0 0.6 0> }
  36.  
  37.    intersection
  38.       {
  39.       plane { <0 -1 0> -0.555 }
  40.  
  41.       plane
  42.          {
  43.          <1 0 0> 0
  44.          rotate <0 0 -4.3012223>
  45.          translate <0.59831012 0.555 0>
  46.          }
  47.  
  48.       plane
  49.          {
  50.          <-1 0 0> 0
  51.          rotate <0 0 4.3012223>
  52.          translate <-0.59831012 0.555 0>
  53.          }
  54.       }
  55.  
  56.    scale <1 0.5 1>
  57.    }
  58.  
  59. declare Nacelle_front_shape = intersection
  60.    {
  61.    union
  62.       {
  63.       quadric { Cylinder_Z scale <0.9 0.9 1> translate <0 4.6 0> }
  64.  
  65.       intersection
  66.          {
  67.          union { Nacelle_bottom_shape scale <1 2 1> }
  68.          plane { <0  1 0> 4.5325 }
  69.          }
  70.       }
  71.  
  72.    union
  73.       {
  74.       quadric { Ellipsoid scale <0.9 0.9 0.9> translate <0 4.94626276 0> }
  75.       quadric { Ellipsoid scale <0.6 0.6 0.6> translate <0 0.6 0> }
  76.  
  77.       intersection
  78.          {
  79.          plane { <0  1 0> 4.88414043 }
  80.          plane { <0 -1 0> -0.55858511 }
  81.  
  82.          quadric
  83.             {
  84.             QCone_Y
  85.  
  86.             translate <0 -1 0>
  87.             scale <0.89785345 12.97666595 0.89785345>
  88.             translate <0 4.88414043 0>
  89.             }
  90.          }
  91.  
  92.       intersection
  93.          {
  94.          plane { <0 0 1> 0 }
  95.  
  96.          plane
  97.             {
  98.             <0 0 1> 0
  99.  
  100.             rotate <-23.02549201 0 0>
  101.             translate <0 4.94626276 0>
  102.             }
  103.          }
  104.  
  105.       plane { <0 0 1> 0 rotate <-23.02549201 0 0> translate <0 0.6 0> }
  106.  
  107.       translate <0 -0.6 0>
  108.       rotate <23.02549201 0 0>
  109.       translate <0 0.6 -2.6>
  110.       }
  111.  
  112.    scale <1 0.5 0.5>
  113.    }
  114.  
  115. declare Nacelle_front_cover = object
  116.    {
  117.    union
  118.       {
  119.       intersection
  120.          {
  121.          intersection { Nacelle_front_shape }
  122.  
  123.          union
  124.             {
  125.             intersection
  126.                {
  127.                plane
  128.                   {
  129.                   <1 0 0> 0
  130.                   rotate <0 -1.85 0>
  131.                   rotate <0 0 -4.3012223>
  132.                   translate <0.59831012 0.555 -3>
  133.                   scale <1 0.5 1>
  134.                   }
  135.  
  136.                plane
  137.                   {
  138.                   <-1 0 0> 0
  139.                   rotate <0 1.85 0>
  140.                   rotate <0 0 4.3012223>
  141.                   translate <-0.59831012 0.555 -3>
  142.                   scale <1 0.5 1>
  143.                   }
  144.                }
  145.  
  146.             plane { <0  1 0>  0.3 }
  147.             plane { <0 -1 0> -2.2 }
  148.             }
  149.  
  150.          union
  151.             {
  152.             union
  153.                {
  154.                union
  155.                   {
  156.                   Nacelle_bottom_shape
  157.  
  158.                   scale <0.75 1 1>
  159.                   translate <0 0.2 0>
  160.                   inverse
  161.                   }
  162.  
  163.                plane { <0 0 1> -5 }
  164.                }
  165.  
  166.             intersection
  167.                {
  168.                plane { < 1 0 0> 0.1 }
  169.                plane { <-1 0 0> 0.1 }
  170.                }
  171.  
  172.             intersection
  173.                {
  174.                plane { <0  1 0>  2.3  }
  175.                plane { <0 -1 0> -2.15 }
  176.                }
  177.             }
  178.  
  179.          plane { <0 0 -1> 6 }
  180.          }
  181.  
  182.       intersection
  183.          {
  184.          union
  185.             {
  186.             box { <-0.55 2.45 -6> <0.55 2.75 0> }
  187.  
  188.             quadric
  189.                {
  190.                Cylinder_Z
  191.  
  192.                scale <0.15 0.15 1>
  193.                translate < 0.55 2.6 0>
  194.                }
  195.  
  196.             quadric
  197.                {
  198.                Cylinder_Z
  199.  
  200.                scale <0.15 0.15 1>
  201.                translate <-0.55 2.6 0>
  202.                }
  203.             }
  204.  
  205.          box { <-0.4 2.4 -5> <0.4 2.8 0> inverse }
  206.  
  207.          union
  208.             {
  209.             quadric { Cylinder_Y scale <4 1 4> translate <-4.4 0 -2> }
  210.             quadric { Cylinder_Y scale <4 1 4> translate < 4.4 0 -2> }
  211.             plane { <0 0 1> -2 }
  212.             }
  213.  
  214.          plane { <0 0 -1> 6 }
  215.          }
  216.  
  217.       sphere { <-0.55 2.6 -6> 0.15 }
  218.       sphere { < 0.55 2.6 -6> 0.15 }
  219.  
  220.       intersection { Disk_Y scale <0.4 0.05 0.4> translate <0 2.7 -5> }
  221.  
  222.       intersection
  223.          {
  224.          sphere { <0 2.65 -5> 0.3 }
  225.          plane { <0 1 0> 2.86 }
  226.          }
  227.       }
  228.    }
  229.  
  230. declare Nacelle_front_side = union
  231.    {
  232.    intersection
  233.       {
  234.       union
  235.          {
  236.          box { <-1.1 0.8 -7> <-0.5 2 -3> }
  237.  
  238.          intersection
  239.             {
  240.             quadric
  241.                {
  242.                Cylinder_Z
  243.  
  244.                scale <0.5 0.3 1>
  245.                translate <-0.6 0.8 0>
  246.                }
  247.  
  248.             plane { <0 0 1> -3.4 }
  249.             }
  250.  
  251.          quadric
  252.             {
  253.             Ellipsoid
  254.  
  255.             scale <0.5 0.3 0.6>
  256.             translate <-0.6 0.8 -3.4>
  257.             }
  258.  
  259.          intersection
  260.             {
  261.             quadric
  262.                {
  263.                Cylinder_Z
  264.  
  265.                scale <0.3 0.3 1>
  266.                translate <-0.8 2 0>
  267.                }
  268.  
  269.             plane { <0 0 1> -2.6 }
  270.             }
  271.  
  272.          quadric
  273.             {
  274.             Ellipsoid
  275.  
  276.             scale <0.3 0.3 0.4>
  277.             translate <-0.8 2 -2.6>
  278.             }
  279.          }
  280.  
  281.       plane { < 0 1 -1> 0 translate <0 0.3 -7> }
  282.  
  283.       union
  284.          {
  285.          plane { <0 -1 0> -2 }
  286.          plane { <0 -1 1>  0 translate <0 2 -3.5> }
  287.          plane { <0  1 0>  0.8 }
  288.  
  289.          plane
  290.             {
  291.             <0 0 1> 0
  292.  
  293.             rotate <-22.5 0 0>
  294.             translate <0 0.8 -4.2171572875254>
  295.             }
  296.          }
  297.  
  298.       quadric
  299.          {
  300.          Cylinder_X
  301.  
  302.          scale <1 0.2 0.2>
  303.          translate <0 1 -4.2171572875254>
  304.          inverse
  305.          }
  306.       }
  307.  
  308.    intersection
  309.       {
  310.       box { <-0.15 0 -0.08> <0.1 1.4534442 0> }
  311.       quadric { Cylinder_Y scale <0.2 1 0.3> translate <0 0 -0.3> }
  312.  
  313.       rotate <26 0 0>
  314.       scale <1 1.0111854 1>
  315.       rotate <0 0 8.53>
  316.       translate <-0.64 0.7 -2.842>
  317.       }
  318.    }
  319.  
  320. declare Nacelle_front_sides = object
  321.    {
  322.    union
  323.       {
  324.       union { Nacelle_front_side }
  325.       union { Nacelle_front_side scale <-1 1 1> }
  326.  
  327.       quadric
  328.          {
  329.          Ellipsoid
  330.  
  331.          scale <1.08 0.9 1.6>
  332.          translate <0 1.55 -3.8>
  333.          texture { Nacelle_interior_texture }
  334.          }
  335.  
  336.       intersection
  337.          {
  338.          quadric
  339.             {
  340.             Cylinder_Z
  341.  
  342.             scale <1.08 0.9 1>
  343.             translate <0 1.55 0>
  344.             texture { Nacelle_interior_texture }
  345.             }
  346.  
  347.          plane { <0 0  1> -3.8 }
  348.          plane { <0 0 -1>  5   }
  349.          }
  350.       }
  351.  
  352.    bounded_by { box { <-1.1 0.5 -7> <1.1 2.3 -2.2> } }
  353.    }
  354.  
  355. declare Nacelle_front_interior = object
  356.    {
  357.    intersection
  358.       {
  359.       intersection
  360.          {
  361.          Nacelle_front_shape
  362.  
  363.          scale <0.9 0.9 1>
  364.          translate <0 0.17 -0.1>
  365.          }
  366.  
  367.       plane { <0 0 -1> 5 }
  368.       }
  369.  
  370.    texture
  371.       {
  372.       colour Gray05
  373.       specular 0
  374.       }
  375.    }
  376.  
  377. declare Nacelle_front = composite
  378.    {
  379.    object { Nacelle_front_cover }
  380.    object { Nacelle_front_interior }
  381.    object { Nacelle_front_sides }
  382.  
  383.    bounded_by { box { <-1.1 0 -7> <1.1 2.9 0> } }
  384.    }
  385.  
  386. declare Nacelle_top_shape = intersection
  387.    {
  388.    union
  389.       {
  390.       quartic // a torus with r0=2.88333333 and r1=0.15
  391.          {
  392.          <1 0 0 0 2 0 0 2 0 -16.6722222
  393.           0 0 0 0 0 0 0 0 0 0
  394.           1 0 0 2 0 16.5822222 0 0 0 0
  395.           1 0 -16.6722222 0 68.7425234>
  396.          sturm
  397.          }
  398.  
  399.       quadric { Cylinder_Y scale <2.88333333 1 2.88333333> }
  400.       }
  401.  
  402.    plane { <1 0 0> -2.43333333 }
  403.  
  404.    scale <1 1 1.5>
  405.    }
  406.  
  407. declare Nacelle_top = object
  408.    {
  409.    intersection
  410.       {
  411.       union
  412.          {
  413.          union
  414.             {
  415.             Nacelle_top_shape
  416.  
  417.             translate <2.43333333 2.6 -16>
  418.             }
  419.  
  420.          union
  421.             {
  422.             Nacelle_top_shape
  423.  
  424.             translate <2.43333333 2.6 -16>
  425.             scale <-1 1 1>
  426.             }
  427.          }
  428.  
  429.       box { <-0.6 2.45 -18.2> <0.6 2.75 -16> }
  430.       }
  431.  
  432.    bounded_by { box { <-0.6 2.45 -18.2> <0.6 2.75 -16> } }
  433.    }
  434.  
  435. declare Nacelle_middle = composite
  436.    {
  437.    object { Nacelle_top }
  438.  
  439.    object
  440.       {
  441.       intersection
  442.          {
  443.          quartic // A torus with r0=18 and r1=0.45
  444.             {
  445.             <1 0 0 0 2 0 0 2 0 -648.4050
  446.              0 0 0 0 0 0 0 0 0 0
  447.              1 0 0 2 0 647.5950 0 0 0 0
  448.              1 0 -648.4050 0 104844.821>
  449.  
  450.             sturm
  451.             rotate <0 0 90>
  452.             translate <0 -15.7 -19>
  453.             scale <2 1 1>
  454.             }
  455.  
  456.          box { <-0.9 2.2 -23> <0.9 2.75 -19> }
  457.          }
  458.  
  459.       bounded_by { box { <-0.9 2.2 -23> <0.9 2.75 -19> } }
  460.       }
  461.  
  462.    object
  463.       {
  464.       intersection
  465.          {
  466.          union
  467.             {
  468.             quartic // A torus with r0=10 and r1=0.3
  469.                {
  470.                <1 0 0 0 2 0 0 2 0 -200.18
  471.                 0 0 0 0 0 0 0 0 0 0
  472.                 1 0 0 2 0 199.82 0 0 0 0
  473.                 1 0 -200.18 0 9982.0081>
  474.  
  475.                sturm
  476.                rotate <0 0 90>
  477.                translate <0 10.3 -16>
  478.                scale <2 1 1>
  479.                }
  480.  
  481.             intersection
  482.                {
  483.                quadric
  484.                   {
  485.                   QCone_X
  486.  
  487.                   translate <-2.5225 0 0>
  488.                   scale <0.14985989 1 1>
  489.                   translate <-1.7222593 10.3 -16>
  490.                   }
  491.  
  492.                quadric
  493.                   {
  494.                   QCone_X
  495.  
  496.                   translate <2.5225 0 0>
  497.                   scale <0.14985989 1 1>
  498.                   translate <1.7222593 10.3 -16>
  499.                   }
  500.  
  501.                quadric
  502.                   {
  503.                   Cylinder_X
  504.  
  505.                   scale <1 10.0225 10.0225>
  506.                   translate <0 10.3 -16>
  507.                   }
  508.                }
  509.             }
  510.  
  511.          box { <-0.7 0 -20> <0.7 0.6 -16> }
  512.          }
  513.  
  514.       bounded_by { box { <-0.7 0 -20> <0.7 0.6 -16> } }
  515.       }
  516.  
  517.    object
  518.       {
  519.       intersection
  520.          {
  521.          union
  522.             {
  523.             union
  524.                {
  525.                intersection
  526.                   {
  527.                   quadric { Cylinder_Z scale <0.9 0.45 1> translate <0 2.3 0> }
  528.                   plane { <0 0 -1> 19 }
  529.                   }
  530.  
  531.                intersection
  532.                   {
  533.                   union { Nacelle_bottom_shape }
  534.                   plane { <0 1  0> 2.26625 }
  535.                   plane { <0 0 -1> 16 }
  536.                   }
  537.                }
  538.  
  539.             difference
  540.                {
  541.                union
  542.                   {
  543.                   quadric
  544.                      {
  545.                      Cylinder_Z
  546.  
  547.                      scale <0.6 0.35 1>
  548.                      translate <0.48 2 0>
  549.                      }
  550.  
  551.                   quadric
  552.                      {
  553.                      Cylinder_Z
  554.  
  555.                      scale <0.6 0.35 1>
  556.                      translate <-0.48 2 0>
  557.                      }
  558.  
  559.                   quadric
  560.                      {
  561.                      Cylinder_Z
  562.  
  563.                      scale <1.08 0.35 1>
  564.                      translate <0 0.8 0>
  565.                      }
  566.  
  567.                   box { <-1.08 0.8 -20> <1.08 2 -5> }
  568.                   }
  569.  
  570.                union
  571.                   {
  572.                   intersection
  573.                      {
  574.                      quadric
  575.                         {
  576.                         Cylinder_Z
  577.  
  578.                         translate <-1.9 1.4 0>
  579.                         texture { Nacelle_interior_texture }
  580.                         }
  581.  
  582.                      plane { <0 0 -1> 18 }
  583.                      }
  584.  
  585.                   quadric
  586.                      {
  587.                      Ellipsoid
  588.  
  589.                      scale <1 1 2>
  590.                      translate <-1.9 1.4 -18>
  591.                      texture { Nacelle_interior_texture }
  592.                      }
  593.                   }
  594.  
  595.                union
  596.                   {
  597.                   intersection
  598.                      {
  599.                      quadric
  600.                         {
  601.                         Cylinder_Z
  602.  
  603.                         translate <1.9 1.4 0>
  604.                         texture { Nacelle_interior_texture }
  605.                         }
  606.  
  607.                      plane { <0 0 -1> 18 }
  608.                      }
  609.  
  610.                   quadric
  611.                      {
  612.                      Ellipsoid
  613.  
  614.                      scale <1 1 2>
  615.                      translate <1.9 1.4 -18>
  616.                      texture { Nacelle_interior_texture }
  617.                      }
  618.                   }
  619.                }
  620.  
  621.             intersection
  622.                {
  623.                union
  624.                   {
  625.                   box { <-0.45 2.45 -16> <0.45 2.75 -6> }
  626.  
  627.                   quadric
  628.                      {
  629.                      Cylinder_Z
  630.  
  631.                      scale <0.15 0.15 1>
  632.                      translate <0.45 2.6 0>
  633.                      }
  634.  
  635.                   quadric
  636.                      {
  637.                      Cylinder_Z
  638.  
  639.                      scale <0.15 0.15 1>
  640.                      translate <-0.45 2.6 0>
  641.                      }
  642.                   }
  643.                plane { <0 0 -1> 16 }
  644.                }
  645.             }
  646.  
  647.          plane { <0 0  1> -5 }
  648.          plane { <0 0 -1> 20 }
  649.          }
  650.  
  651.       bounded_by { box { <-1.08 0 -20> <1.08 2.75 -5> } }
  652.       }
  653.    }
  654.  
  655. declare Nacelle_back = composite
  656.    {
  657.    object
  658.       {
  659.       intersection
  660.          {
  661.          union
  662.             {
  663.             intersection
  664.                {
  665.                quartic // A torus with r0=36.4 and r1=0.6
  666.                   {
  667.                   <1 0 0 0 2 0 0 2 0 -2650.64
  668.                    0 0 0 0 0 0 0 0 0 0
  669.                    1 0 0 2 0 2649.20 0 0 0 0
  670.                    1 0 -2650.64 0 1754565.16>
  671.  
  672.                   sturm
  673.                   scale <1 0.58333333 1>
  674.                   translate <35.92 2 -20>
  675.                   }
  676.  
  677.                plane { <1 0 0> 0 }
  678.                }
  679.  
  680.             intersection
  681.                {
  682.                quartic // A torus with r0=36.4 and r1=0.6
  683.                   {
  684.                   <1 0 0 0 2 0 0 2 0 -2650.64
  685.                    0 0 0 0 0 0 0 0 0 0
  686.                    1 0 0 2 0 2649.20 0 0 0 0
  687.                    1 0 -2650.64 0 1754565.16>
  688.  
  689.                   sturm
  690.                   scale <1 0.58333333 1>
  691.                   translate <-35.92 2 -20>
  692.                   }
  693.  
  694.                plane { <-1 0 0> 0 }
  695.                }
  696.  
  697.             intersection
  698.                {
  699.                quadric
  700.                   {
  701.                   Cylinder_Y
  702.  
  703.                   scale <36.4 1 36.4>
  704.                   translate <35.92 0 -20>
  705.                   }
  706.  
  707.                quadric
  708.                   {
  709.                   Cylinder_Y
  710.  
  711.                   scale <36.4 1 36.4>
  712.                   translate <-35.92 0 -20>
  713.                   }
  714.                }
  715.             }
  716.  
  717.          box { <-1.08 2 -28.6> <1.08 2.35 -20> }
  718.          plane { < 0 -1 -1> 0 translate <0 2 -28.3> }
  719.          }
  720.  
  721.       bounded_by { box { <-1.08 2 -28.6> <1.08 2.35 -20> } }
  722.       }
  723.  
  724.    object
  725.       {
  726.       intersection
  727.          {
  728.          quadric
  729.             {
  730.             Cylinder_Y
  731.  
  732.             scale <37 1 37>
  733.             translate <35.92 0 -20>
  734.  
  735.             texture
  736.                {
  737.                NCC_1701_A_texture
  738.  
  739.                scale <1 1 -1>
  740.                translate <0 1.3 -24.5>
  741.                }
  742.             }
  743.  
  744.          quadric
  745.             {
  746.             Cylinder_Y
  747.  
  748.             scale <37 1 37>
  749.             translate <-35.92 0 -20>
  750.  
  751.             texture
  752.                {
  753.                NCC_1701_A_texture
  754.  
  755.                translate <0 1.3 -27>
  756.                }
  757.             }
  758.  
  759.          box { <-1.08 0.8 -28.3> <1.08 2 -20> }
  760.          plane { < 0 -1 -1> 0 translate <0 2 -28.3> }
  761.          }
  762.  
  763.       bounded_by { box { <-1.08 0.8 -28.3> <1.08 2 -20> } }
  764.       }
  765.  
  766.    object
  767.       {
  768.       intersection
  769.          {
  770.          union
  771.             {
  772.             intersection
  773.                {
  774.                quartic // A torus with r0=35.92 and r1=1.08
  775.                   {
  776.                   <1 0 0 0 2 0 0 2 0 -2582.8256
  777.                    0 0 0 0 0 0 0 0 0 0
  778.                    1 0 0 2 0 2578.1600 0 0 0 0
  779.                    1 0 -2582.8256 0 1661727.25>
  780.  
  781.                   sturm
  782.                   scale <1 0.324074074 1>
  783.                   translate <35.92 0.8 -20>
  784.                   }
  785.  
  786.                plane { <1 0 0> 0 }
  787.                }
  788.  
  789.             intersection
  790.                {
  791.                quartic // A torus with r0=35.92 and r1=1.08
  792.                   {
  793.                   <1 0 0 0 2 0 0 2 0 -2582.8256
  794.                    0 0 0 0 0 0 0 0 0 0
  795.                    1 0 0 2 0 2578.1600 0 0 0 0
  796.                    1 0 -2582.8256 0 1661727.25>
  797.  
  798.                   sturm
  799.                   scale <1 0.324074074 1>
  800.                   translate <-35.92 0.8 -20>
  801.                   }
  802.  
  803.                plane { <-1 0 0> 0 }
  804.                }
  805.             }
  806.  
  807.          box { <-1.08 0.45 -27.1> <1.08 0.8 -20> }
  808.          plane { < 0 -1 -1> 0 translate <0 2 -28.3> }
  809.          }
  810.  
  811.       bounded_by { box { <-1.08 0.45 -27.1> <1.08 0.8 -20> } }
  812.       }
  813.  
  814.    object
  815.       {
  816.       intersection
  817.          {
  818.          plane { <-1  0  0> 0.1 }
  819.          plane { < 1  0  0> 0.1 }
  820.          plane { < 0 -1 -1> 0 translate <0 2   -28.4> }
  821.          plane { < 0  1 -1> 0 translate <0 1.7 -28.1> }
  822.          plane { < 0 -5  1> 0 translate <0 0   -26.5> }
  823.          plane { < 0  8  3> 0 translate <0 2   -28  > }
  824.          }
  825.       }
  826.  
  827.    bounded_by { box { <-1.08 0 -28.6> <1.08 2.35 -20> } }
  828.    }
  829.  
  830. declare Nacelle_light = object
  831.    {
  832.    sphere { <0 2.3 -27.6> 0.1 }
  833.  
  834.    texture { Light_texture }
  835.    }
  836.  
  837. declare Nacelle_bottom = object
  838.    {
  839.    union
  840.       {
  841.       quadric { Ellipsoid   scale <0.3 0.5 0.5> translate <0 0.1 -8    > }
  842.       quadric { Ellipsoid   scale <0.3 0.5 0.5> translate <0 0.1 -15.8 > }
  843.       intersection { Disk_Z scale <0.3 0.5 3.9> translate <0 0.1 -11.85> }
  844.       }
  845.  
  846.    bounded_by { box { <-0.3 -0.4 -16.3> <0.3 0.2 -7.5> } }
  847.    }
  848.  
  849. declare Nacelle_wing = object
  850.    {
  851.    intersection
  852.       {
  853.       plane { < 0   1   0> 0.9 }
  854.       plane { <-1   0   0> 1.1 }
  855.       plane { < 1   0   0> 0   }
  856.       plane { < 0   1   1> 0 translate <0 0.8 -22  > }
  857.       plane { < 0 -60   1> 0 translate <0 0.8 -22  > }
  858.       plane { <-6  -6 -11> 0 translate <0 0.9 -27.8> }
  859.       }
  860.  
  861.    bounded_by { box { <-1.1 0.7 -27.8> <0 0.9 -22> } }
  862.  
  863.    translate <0 0.1 0>
  864.    }
  865.  
  866. //
  867. // Parts of the pylons
  868. //
  869.  
  870. declare Nacelle_pylon_cover = object
  871.    {
  872.    intersection
  873.       {
  874.       union
  875.          {
  876.          intersection
  877.             {
  878.             quadric
  879.                {
  880.                Cylinder_Y
  881.  
  882.                scale <2.60039888 1 2.60039888>
  883.                translate <2.30039888 0 0>
  884.                }
  885.  
  886.             quadric
  887.                {
  888.                Cylinder_Y
  889.  
  890.                scale <2.60039888 1 2.60039888>
  891.                translate <-2.30039888 0 0>
  892.                }
  893.             }
  894.  
  895.          plane { <0 0 1> 0 }
  896.  
  897.          rotate <-37.69424047 0 0>
  898.          translate <0 0 -1.1>
  899.          }
  900.  
  901.       union
  902.          {
  903.          intersection
  904.             {
  905.             quadric
  906.                {
  907.                Cylinder_Y
  908.  
  909.                scale <1.81554797 1 1.81554797>
  910.                translate <1.51554797 0 0>
  911.                }
  912.  
  913.             quadric
  914.                {
  915.                Cylinder_Y
  916.  
  917.                scale <1.81554797 1 1.81554797>
  918.                translate <-1.51554797 0 0>
  919.                }
  920.             }
  921.  
  922.          plane { <0 0 -1> 0 }
  923.  
  924.          rotate <-48.93478206 0 0>
  925.          translate <0 0 -1.1>
  926.          }
  927.  
  928.       plane { <-1  0  0> 0.3 }
  929.       plane { < 1  0  0> 0.3 }
  930.       plane { < 0 -1  0> 0   }
  931.       plane { < 0  1  0> 8.8 }
  932.       plane { < 0  0 -1> 0 rotate <-48.93478206 0 0> translate <0 0 -2.2> }
  933.       plane { < 0  0  1> 0 rotate <-37.69424047 0 0> }
  934.  
  935.       box
  936.          {
  937.          <-0.1 0.5 -0.05> <0.1 13 0.05>
  938.  
  939.          rotate <-48.93478206 0 0>
  940.          translate <0 0 -2.2>
  941.          inverse
  942.  
  943.          texture { colour Black }
  944.          }
  945.  
  946.       box
  947.          {
  948.          <-0.1 0.3 -0.05> <0.1 1 0.05>
  949.  
  950.          rotate <-37.69424047 0 0>
  951.          inverse
  952.  
  953.          texture { colour Black }
  954.          }
  955.  
  956.       box
  957.          {
  958.          <-0.1 1.3 -0.05> <0.1 2.6 0.05>
  959.  
  960.          rotate <-37.69424047 0 0>
  961.          inverse
  962.  
  963.          texture { colour Black }
  964.          }
  965.  
  966.       box
  967.          {
  968.          <-0.1 2.9 -0.05> <0.1 10.6 0.05>
  969.  
  970.          rotate <-37.69424047 0 0>
  971.          inverse
  972.  
  973.          texture { colour Black }
  974.          }
  975.  
  976.       intersection
  977.          {
  978.          plane { <0 1  0>  8.3 }
  979.          plane { <0 0  1> -9.7 }
  980.  
  981.          plane
  982.             {
  983.             <0 0 -1> 0
  984.  
  985.             rotate <-48.93478206 0 0>
  986.             translate <0 0 -2.05>
  987.             }
  988.  
  989.          inverse
  990.          }
  991.  
  992.       intersection
  993.          {
  994.          plane { <0  1  0>  5.8 }
  995.          plane { <0 -1  0> -2   }
  996.          plane { <1  0  0>  0   }
  997.  
  998.          plane
  999.             {
  1000.             <0 0 1> 0
  1001.  
  1002.             rotate <-37.69424047 0 0>
  1003.             translate <0 0 -2.2 >
  1004.             }
  1005.  
  1006.          plane
  1007.             {
  1008.             <0 0 -1> 0
  1009.  
  1010.             rotate <-48.93478206 0 0>
  1011.             translate <0 0 -2.05>
  1012.             }
  1013.  
  1014.          inverse
  1015.          }
  1016.       }
  1017.    }
  1018.  
  1019. declare Nacelle_pylon_interior = object
  1020.    {
  1021.    intersection
  1022.       {
  1023.       union
  1024.          {
  1025.          intersection
  1026.             {
  1027.             quadric
  1028.                {
  1029.                Cylinder_Y
  1030.  
  1031.                scale <1.76554797 1 1.76554797>
  1032.                translate < 1.51554797 0 0>
  1033.                }
  1034.  
  1035.             quadric
  1036.                {
  1037.                Cylinder_Y
  1038.  
  1039.                scale <1.76554797 1 1.76554797>
  1040.                translate <-1.51554797 0 0>
  1041.                }
  1042.             }
  1043.  
  1044.          plane { <0 0 -1> -0 }
  1045.  
  1046.          rotate <-48.93478206 0 0>
  1047.          translate <0 0 -1.1>
  1048.          }
  1049.  
  1050.       plane { <-1  0  0> 0.25 }
  1051.       plane { < 1  0  0> 0.25 }
  1052.       plane { < 0 -1  0> 0    }
  1053.       plane { < 0  1  0> 8.8  }
  1054.       plane { < 0  0 -1> 0 rotate <-48.93478206 0 0> translate <0 0 -2.1> }
  1055.       plane { < 0  0  1> 0 rotate <-37.69424047 0 0> translate <0 0 -1.1> }
  1056.       }
  1057.  
  1058.    texture { colour Gray70 }
  1059.    }
  1060.  
  1061. declare Nacelle_pylon_base = object
  1062.    {
  1063.    intersection
  1064.       {
  1065.       quartic // A torus with r0=5.10833333 and r1=1
  1066.          {
  1067.          <1 0 0 0 2 0 0 2 0 -54.1901388
  1068.           0 0 0 0 0 0 0 0 0 0
  1069.           1 0 0 2 0 50.1901388 0 0 0 0
  1070.           1 0 -54.1901388 0 629.762508>
  1071.  
  1072.          sturm
  1073.          inverse
  1074.          translate <3.80833333 0 -1.1>
  1075.          scale <1 0.5 1>
  1076.          }
  1077.  
  1078.       quartic // A torus with r0=5.10833333 and r1=1
  1079.          {
  1080.          <1 0 0 0 2 0 0 2 0 -54.1901388
  1081.           0 0 0 0 0 0 0 0 0 0
  1082.           1 0 0 2 0 50.1901388 0 0 0 0
  1083.           1 0 -54.1901388 0 629.762508>
  1084.  
  1085.          sturm
  1086.          inverse
  1087.          translate <-3.80833333 0 -1.1>
  1088.          scale <1 1.3 1>
  1089.          }
  1090.  
  1091.       quadric
  1092.          {
  1093.          Cylinder_X
  1094.  
  1095.          inverse
  1096.          translate <0 0 -3.2>
  1097.          }
  1098.  
  1099.       quadric
  1100.          {
  1101.          Cylinder_X
  1102.  
  1103.          inverse
  1104.          translate <0 0.6114475 0.791285002>
  1105.          }
  1106.  
  1107.       box { <-0.7 -1.2 -3.2> <1 0 0.77> }
  1108.       }
  1109.  
  1110.    bounded_by { box { <-0.7 -1.2 -3.2> <1 0 0.77> } }
  1111.    }
  1112.  
  1113. declare Nacelle_pylon = composite
  1114.    {
  1115.    object { Nacelle_pylon_cover }
  1116.    object { Nacelle_pylon_interior }
  1117.  
  1118.    bounded_by
  1119.       {
  1120.       box { <-0.3 0 -4.36> <0.3 14.5 0> rotate <-37.69424047 0 0> }
  1121.       }
  1122.  
  1123.    scale <1 0.967032967 1>
  1124.    }
  1125.  
  1126. //
  1127. // And then we collect them together
  1128. //
  1129.  
  1130. declare Left_nacelle_pylon = composite
  1131.    {
  1132.    composite { Nacelle_pylon }
  1133.  
  1134.    object { Nacelle_pylon_base }
  1135.  
  1136.    translate <0 2.3 0>
  1137.    rotate <0 0 56.30993247>
  1138.    translate <0 -2.6 -4.05>
  1139.    }
  1140.  
  1141. declare Right_nacelle_pylon = composite
  1142.    {
  1143.    composite { Left_nacelle_pylon }
  1144.  
  1145.    scale <-1 1 1>
  1146.    }
  1147.  
  1148. declare Left_warp_nacelle = composite
  1149.    {
  1150.    composite { Nacelle_front }
  1151.    composite { Nacelle_middle }
  1152.    composite { Nacelle_back }
  1153.    object    { Nacelle_bottom }
  1154.    object    { Nacelle_light }
  1155.    object    { Nacelle_wing }
  1156.  
  1157.    bounded_by { box { <-1.1 -0.4 -28.4> <1.1 2.86 0> } }
  1158.  
  1159.    translate <-9 3.4 -0.55>
  1160.    }
  1161.  
  1162. declare Right_warp_nacelle = composite
  1163.    {
  1164.    composite { Nacelle_front }
  1165.    composite { Nacelle_middle }
  1166.    composite { Nacelle_back }
  1167.    object    { Nacelle_bottom }
  1168.    object    { Nacelle_light }
  1169.    object    { Nacelle_wing scale <-1 1 1> }
  1170.  
  1171.    bounded_by { box { <-1.1 -0.4 -28.4> <1.1 2.86 0> } }
  1172.  
  1173.    translate <9 3.4 -0.55>
  1174.    }
  1175.